#ifndef EQPC_H
#define EQPC_H

//#include "typedefs.h"
#include <eq/eq.h>
#include "DTrackSDK.hpp"
#include "pointCloudDist.h"
#include "pointCloud.h"


namespace eqPc
{


	class LocalInitData;



    typedef std::vector< pc::PointCloud* > PointClouds;
    typedef std::vector< PointCloudDist* > PointCloudDists;

    typedef PointClouds::const_iterator PointCloudsCIter;
    typedef PointCloudDists::const_iterator PointCloudDistsCIter;

	class EqPc : public eq::Client
	{
	public:
        EqPc( const LocalInitData& initData );
        virtual ~EqPc() {}

        /** Run an eqPly instance. */
        int run();

        /** @return a string containing an online help description. */
        static const std::string& getHelp();

    protected:
        /** @sa eq::Client::clientLoop. */
        virtual void clientLoop();

    private:
        const LocalInitData& _initData;
    };

    enum ColorMode
    {
        COLOR_MODEL, //!< Render using the colors defined in the ply file
        COLOR_DEMO,  //!< Use a unique color to demonstrate decomposition
        COLOR_WHITE, //!< Render in solid white (mostly for anaglyph stereo)
        COLOR_ALL    //!< @internal, must be last
    };

    enum LogTopics
    {
        LOG_STATS = eq::LOG_CUSTOM << 0, // 65536
        LOG_CULL  = eq::LOG_CUSTOM << 1  // 131072
    };

}


#endif